{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "08a8a12d",
   "metadata": {},
   "source": [
    "# Covid case forecasting Using TimeSeriesModel from arcgis.learn"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ff01601c",
   "metadata": {},
   "source": [
    "## Table of Contents <a class=\"anchor\" id=\"0\"></a>\n",
    "* [Introduction](#1) \n",
    "* [Importing libraries](#2)\n",
    "* [Connecting to your GIS](#3)\n",
    "* [Accessing the dataset](#4) \n",
    "* [Raw data cleaning](#5) \n",
    "    * [Calculate Moving Average for Confirmed cases](#6)\n",
    "    * [Cut off first 6 days date](#7) \n",
    "* [Time series data preprocessing](#8) \n",
    "    * [Collecting the counties of the Alabama State](#9) \n",
    "* [Time series modeling and forecasting](#10) \n",
    "* [Result visualization](#11) \n",
    "* [Conclusion](#12)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "282f19d4",
   "metadata": {},
   "source": [
    "## Introduction<a class=\"anchor\" id=\"1\"></a> "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45bc799c",
   "metadata": {},
   "source": [
    "COVID-19 forecasting has been vital for efficiently planning health care policy during the pandemic. There are many forecasting models, a few of which require explanatory variables like population, social distancing, etc. This notebook uses the deep learning `TimeSeriesModel` from `arcgis.learn` for data modeling and is helpful in the prediction of future trends.\n",
    "\n",
    "To demonstrate the utility of this method, this notebook will analyze confirmed cases for all counties in Alabama. The dataset contains the unique county FIPS ID, county Name, State ID, and cumulative confirmed cases datewise for each county. The dataset ranges from January 2020 to February 2022, with the data from January 2022 to February 2022 being used to validate the quality of the forecast. The approach utilized in this analysis for forecasting future COVID-19 cases involves: (a) Data Processing (calculating the seven day moving average for removing the noise and vertically stacking the county data), (b) creating functions for test-train splitting, tabular data preparation, model fitting using Inception Time for a sequence length of 60, and forecasting, and (c) validation and visualization of the predicted data and results.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "edeb25a3",
   "metadata": {},
   "source": [
    "## Importing Libraries<a class=\"anchor\" id=\"2\"></a> "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "daed8a76",
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import r2_score\n",
    "import sklearn.metrics as metrics\n",
    "\n",
    "from arcgis.gis import GIS\n",
    "from arcgis.learn import TimeSeriesModel, prepare_tabulardata"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1ef9ea96",
   "metadata": {},
   "source": [
    "## Connecting to your GIS<a class=\"anchor\" id=\"3\"></a> "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "7acf4cdb",
   "metadata": {},
   "outputs": [],
   "source": [
    "gis = GIS(\"home\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5b50d480",
   "metadata": {},
   "source": [
    "## Accessing the dataset <a class=\"anchor\" id=\"4\"></a>\n",
    "The latest dataset can be downloaded from USAFacts: \n",
    "https://usafacts.org/visualizations/coronavirus-covid-19-spread-map/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "aa256016",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div class=\"item_container\" style=\"height: auto; overflow: hidden; border: 1px solid #cfcfcf; border-radius: 2px; background: #f6fafa; line-height: 1.21429em; padding: 10px;\">\n",
       "                    <div class=\"item_left\" style=\"width: 210px; float: left;\">\n",
       "                       <a href='https://www.arcgis.com//home/item.html?id=b222748b885e4741839f3787f207b2b1' target='_blank'>\n",
       "                        <img src='' width='200' height='133' class=\"itemThumbnail\">\n",
       "                       </a>\n",
       "                    </div>\n",
       "\n",
       "                    <div class=\"item_right\"     style=\"float: none; width: auto; overflow: hidden;\">\n",
       "                        <a href='https://www.arcgis.com//home/item.html?id=b222748b885e4741839f3787f207b2b1' target='_blank'><b>USA Covid Confirmed Cases Dataset</b>\n",
       "                        </a>\n",
       "                        <br/>This data contains the confirmed covid cases from 01/22/2020 to 02/01/2022 for USA counties. The latest dataset can be downloaded from USAFacts: https://usafacts.org/visualizations/coronavirus-covid-19-spread-map/<img src='https://www.arcgis.com//home/js/jsapi/esri/css/images/item_type_icons/layers16.png' style=\"vertical-align:middle;\">CSV by api_data_owner\n",
       "                        <br/>Last Modified: May 12, 2022\n",
       "                        <br/>0 comments, 2 views\n",
       "                    </div>\n",
       "                </div>\n",
       "                "
      ],
      "text/plain": [
       "<Item title:\"USA Covid Confirmed Cases Dataset\" type:CSV owner:api_data_owner>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Access the data table\n",
    "data_table = gis.content.get(\"b222748b885e4741839f3787f207b2b1\")\n",
    "data_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "87672ec1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Download the csv and saving it in local folder\n",
    "data_path = data_table.get_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "ff725dd3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>countyFIPS</th>\n",
       "      <th>County Name</th>\n",
       "      <th>State</th>\n",
       "      <th>StateFIPS</th>\n",
       "      <th>2020-01-22</th>\n",
       "      <th>2020-01-23</th>\n",
       "      <th>2020-01-24</th>\n",
       "      <th>2020-01-25</th>\n",
       "      <th>2020-01-26</th>\n",
       "      <th>2020-01-27</th>\n",
       "      <th>...</th>\n",
       "      <th>2022-01-23</th>\n",
       "      <th>2022-01-24</th>\n",
       "      <th>2022-01-25</th>\n",
       "      <th>2022-01-26</th>\n",
       "      <th>2022-01-27</th>\n",
       "      <th>2022-01-28</th>\n",
       "      <th>2022-01-29</th>\n",
       "      <th>2022-01-30</th>\n",
       "      <th>2022-01-31</th>\n",
       "      <th>2022-02-01</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>Statewide Unallocated</td>\n",
       "      <td>AL</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1001</td>\n",
       "      <td>Autauga County</td>\n",
       "      <td>AL</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>13019</td>\n",
       "      <td>13251</td>\n",
       "      <td>13251</td>\n",
       "      <td>13251</td>\n",
       "      <td>13251</td>\n",
       "      <td>13251</td>\n",
       "      <td>13251</td>\n",
       "      <td>13251</td>\n",
       "      <td>13251</td>\n",
       "      <td>14826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1003</td>\n",
       "      <td>Baldwin County</td>\n",
       "      <td>AL</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>49168</td>\n",
       "      <td>50313</td>\n",
       "      <td>50313</td>\n",
       "      <td>50313</td>\n",
       "      <td>50313</td>\n",
       "      <td>50313</td>\n",
       "      <td>50313</td>\n",
       "      <td>50313</td>\n",
       "      <td>50313</td>\n",
       "      <td>53083</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1005</td>\n",
       "      <td>Barbour County</td>\n",
       "      <td>AL</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>4902</td>\n",
       "      <td>5054</td>\n",
       "      <td>5054</td>\n",
       "      <td>5054</td>\n",
       "      <td>5054</td>\n",
       "      <td>5054</td>\n",
       "      <td>5054</td>\n",
       "      <td>5054</td>\n",
       "      <td>5054</td>\n",
       "      <td>5297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1007</td>\n",
       "      <td>Bibb County</td>\n",
       "      <td>AL</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>5663</td>\n",
       "      <td>5795</td>\n",
       "      <td>5795</td>\n",
       "      <td>5795</td>\n",
       "      <td>5795</td>\n",
       "      <td>5795</td>\n",
       "      <td>5795</td>\n",
       "      <td>5795</td>\n",
       "      <td>5795</td>\n",
       "      <td>6158</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 746 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   countyFIPS            County Name State  StateFIPS  2020-01-22  2020-01-23  \\\n",
       "0           0  Statewide Unallocated    AL          1           0           0   \n",
       "1        1001        Autauga County     AL          1           0           0   \n",
       "2        1003        Baldwin County     AL          1           0           0   \n",
       "3        1005        Barbour County     AL          1           0           0   \n",
       "4        1007           Bibb County     AL          1           0           0   \n",
       "\n",
       "   2020-01-24  2020-01-25  2020-01-26  2020-01-27  ...  2022-01-23  \\\n",
       "0           0           0           0           0  ...           0   \n",
       "1           0           0           0           0  ...       13019   \n",
       "2           0           0           0           0  ...       49168   \n",
       "3           0           0           0           0  ...        4902   \n",
       "4           0           0           0           0  ...        5663   \n",
       "\n",
       "   2022-01-24  2022-01-25  2022-01-26  2022-01-27  2022-01-28  2022-01-29  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1       13251       13251       13251       13251       13251       13251   \n",
       "2       50313       50313       50313       50313       50313       50313   \n",
       "3        5054        5054        5054        5054        5054        5054   \n",
       "4        5795        5795        5795        5795        5795        5795   \n",
       "\n",
       "   2022-01-30  2022-01-31  2022-02-01  \n",
       "0           0           0           0  \n",
       "1       13251       13251       14826  \n",
       "2       50313       50313       53083  \n",
       "3        5054        5054        5297  \n",
       "4        5795        5795        6158  \n",
       "\n",
       "[5 rows x 746 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# # Read the csv file\n",
    "confirmed = pd.read_csv(data_path)\n",
    "confirmed.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c10df473",
   "metadata": {},
   "source": [
    "## Raw data cleaning<a class=\"anchor\" id=\"5\"></a>   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "dafc8e8f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Extract the data of Alabama State\n",
    "confirmed_AL = confirmed.loc[\n",
    "    (confirmed[\"countyFIPS\"] >= 1000) & (confirmed[\"countyFIPS\"] <= 1133)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "3ad521a0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>countyFIPS</th>\n",
       "      <th>OriginalDate</th>\n",
       "      <th>ConfirmedCases</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1001</td>\n",
       "      <td>2020-01-22</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1001</td>\n",
       "      <td>2020-01-23</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1001</td>\n",
       "      <td>2020-01-24</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1001</td>\n",
       "      <td>2020-01-25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1001</td>\n",
       "      <td>2020-01-26</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49709</th>\n",
       "      <td>1133</td>\n",
       "      <td>2022-01-28</td>\n",
       "      <td>6323</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49710</th>\n",
       "      <td>1133</td>\n",
       "      <td>2022-01-29</td>\n",
       "      <td>6323</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49711</th>\n",
       "      <td>1133</td>\n",
       "      <td>2022-01-30</td>\n",
       "      <td>6323</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49712</th>\n",
       "      <td>1133</td>\n",
       "      <td>2022-01-31</td>\n",
       "      <td>6323</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49713</th>\n",
       "      <td>1133</td>\n",
       "      <td>2022-02-01</td>\n",
       "      <td>7057</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>49714 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       countyFIPS OriginalDate  ConfirmedCases\n",
       "0            1001   2020-01-22               0\n",
       "1            1001   2020-01-23               0\n",
       "2            1001   2020-01-24               0\n",
       "3            1001   2020-01-25               0\n",
       "4            1001   2020-01-26               0\n",
       "...           ...          ...             ...\n",
       "49709        1133   2022-01-28            6323\n",
       "49710        1133   2022-01-29            6323\n",
       "49711        1133   2022-01-30            6323\n",
       "49712        1133   2022-01-31            6323\n",
       "49713        1133   2022-02-01            7057\n",
       "\n",
       "[49714 rows x 3 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Stack the table for cumulative confirmed cases\n",
    "confirmed_AL = confirmed_AL.set_index([\"countyFIPS\"])\n",
    "confirmed_AL = confirmed_AL.drop(columns=[\"State\", \"County Name\", \"StateFIPS\"])\n",
    "confirmed_stacked_df = (\n",
    "    confirmed_AL.stack()\n",
    "    .reset_index()\n",
    "    .rename(columns={\"level_1\": \"OriginalDate\", 0: \"ConfirmedCases\"})\n",
    ")\n",
    "confirmed_stacked_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "2bb20c82",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 49714 entries, 0 to 49713\n",
      "Data columns (total 3 columns):\n",
      " #   Column          Non-Null Count  Dtype         \n",
      "---  ------          --------------  -----         \n",
      " 0   countyFIPS      49714 non-null  int64         \n",
      " 1   ConfirmedCases  49714 non-null  int64         \n",
      " 2   DateTime        49714 non-null  datetime64[ns]\n",
      "dtypes: datetime64[ns](1), int64(2)\n",
      "memory usage: 1.1 MB\n"
     ]
    }
   ],
   "source": [
    "# Converting into date time field format\n",
    "confirmed_stacked_df[\"DateTime\"] = pd.to_datetime(\n",
    "    confirmed_stacked_df[\"OriginalDate\"], infer_datetime_format=True\n",
    ")\n",
    "confirmed_stacked_df = confirmed_stacked_df.drop(columns=[\"OriginalDate\"])\n",
    "confirmed_stacked_df.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "edd3e8ef",
   "metadata": {},
   "source": [
    "### Calculate Moving Average for Confirmed cases<a class=\"anchor\" id=\"6\"></a> \n",
    "Here, we calculate a 7-day simple moving average to smooth out the data and remove noise caused by spikes in testing results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "a60922d0",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Set moving average window = 7 days\n",
    "SMA_Window = 7\n",
    "# Copy the dataframe and set columns need to be calculated\n",
    "df = confirmed_stacked_df\n",
    "cols = {1: \"ConfirmedCases\"}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "4fa349b6",
   "metadata": {},
   "outputs": [],
   "source": [
    "SMA_Window = 7\n",
    "for fips in df.countyFIPS.unique():\n",
    "    for col in cols:\n",
    "        field = f\"{cols[col]}_SMA{SMA_Window}\"\n",
    "        df.loc[df[\"countyFIPS\"] == fips, field] = (\n",
    "            df.loc[df[\"countyFIPS\"] == fips]\n",
    "            .iloc[:, col]\n",
    "            .rolling(window=SMA_Window)\n",
    "            .mean()\n",
    "        )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "79a28702",
   "metadata": {},
   "source": [
    "### Cut off first 6 day's date<a class=\"anchor\" id=\"7\"></a> \n",
    "As the first moving average value starts from the seventh day, we will disregard the first 6 days."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "12633b8d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timestamp('2020-01-28 00:00:00')"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "firstMADay = df[\"DateTime\"].iloc[0] + pd.DateOffset(days=SMA_Window - 1)\n",
    "firstMADay"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "7d5e21d6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>countyFIPS</th>\n",
       "      <th>ConfirmedCases</th>\n",
       "      <th>DateTime</th>\n",
       "      <th>ConfirmedCases_SMA7</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1001</td>\n",
       "      <td>0</td>\n",
       "      <td>2020-01-28</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1001</td>\n",
       "      <td>0</td>\n",
       "      <td>2020-01-29</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1001</td>\n",
       "      <td>0</td>\n",
       "      <td>2020-01-30</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1001</td>\n",
       "      <td>0</td>\n",
       "      <td>2020-01-31</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1001</td>\n",
       "      <td>0</td>\n",
       "      <td>2020-02-01</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49307</th>\n",
       "      <td>1133</td>\n",
       "      <td>6323</td>\n",
       "      <td>2022-01-28</td>\n",
       "      <td>6248.714286</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49308</th>\n",
       "      <td>1133</td>\n",
       "      <td>6323</td>\n",
       "      <td>2022-01-29</td>\n",
       "      <td>6285.857143</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49309</th>\n",
       "      <td>1133</td>\n",
       "      <td>6323</td>\n",
       "      <td>2022-01-30</td>\n",
       "      <td>6323.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49310</th>\n",
       "      <td>1133</td>\n",
       "      <td>6323</td>\n",
       "      <td>2022-01-31</td>\n",
       "      <td>6323.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49311</th>\n",
       "      <td>1133</td>\n",
       "      <td>7057</td>\n",
       "      <td>2022-02-01</td>\n",
       "      <td>6427.857143</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>49312 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       countyFIPS  ConfirmedCases   DateTime  ConfirmedCases_SMA7\n",
       "0            1001               0 2020-01-28             0.000000\n",
       "1            1001               0 2020-01-29             0.000000\n",
       "2            1001               0 2020-01-30             0.000000\n",
       "3            1001               0 2020-01-31             0.000000\n",
       "4            1001               0 2020-02-01             0.000000\n",
       "...           ...             ...        ...                  ...\n",
       "49307        1133            6323 2022-01-28          6248.714286\n",
       "49308        1133            6323 2022-01-29          6285.857143\n",
       "49309        1133            6323 2022-01-30          6323.000000\n",
       "49310        1133            6323 2022-01-31          6323.000000\n",
       "49311        1133            7057 2022-02-01          6427.857143\n",
       "\n",
       "[49312 rows x 4 columns]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_FirstMADay = df.loc[df[\"DateTime\"] >= firstMADay]\n",
    "df_FirstMADay.reset_index(drop=True, inplace=True)\n",
    "df_FirstMADay"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5dd3d1c5",
   "metadata": {},
   "source": [
    "## Time series data preprocessing<a class=\"anchor\" id=\"8\"></a>   \n",
    "The preprocessing of the data for multivariate time series modeling includes the selection of required columns, converting time into the date-time format, and collecting all the counties of the state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "dc6b8fa2",
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# Selecting the required columns for modeling\n",
    "df = df_FirstMADay[[\"DateTime\", \"ConfirmedCases_SMA7\", \"countyFIPS\"]].copy()\n",
    "df.columns = [\"date\", \"cases\", \"countyFIPS\"]\n",
    "df.date = pd.to_datetime(df.date, format=\"%Y-%m-%d\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "85680ab2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>cases</th>\n",
       "      <th>countyFIPS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>49307</th>\n",
       "      <td>2022-01-28</td>\n",
       "      <td>6248.714286</td>\n",
       "      <td>1133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49308</th>\n",
       "      <td>2022-01-29</td>\n",
       "      <td>6285.857143</td>\n",
       "      <td>1133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49309</th>\n",
       "      <td>2022-01-30</td>\n",
       "      <td>6323.000000</td>\n",
       "      <td>1133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49310</th>\n",
       "      <td>2022-01-31</td>\n",
       "      <td>6323.000000</td>\n",
       "      <td>1133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49311</th>\n",
       "      <td>2022-02-01</td>\n",
       "      <td>6427.857143</td>\n",
       "      <td>1133</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            date        cases  countyFIPS\n",
       "49307 2022-01-28  6248.714286        1133\n",
       "49308 2022-01-29  6285.857143        1133\n",
       "49309 2022-01-30  6323.000000        1133\n",
       "49310 2022-01-31  6323.000000        1133\n",
       "49311 2022-02-01  6427.857143        1133"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2c1840f6",
   "metadata": {},
   "source": [
    "### Collecting the counties of Alabama<a class=\"anchor\" id=\"9\"></a>   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "334415c7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "67"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# This cell collects all counties by their Unique FIPS IDs.\n",
    "counties = df.countyFIPS.unique()\n",
    "counties = [county for county in counties if county != 0]\n",
    "len(counties)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6b006bcc",
   "metadata": {},
   "source": [
    "The next cell can be used to forecast for a specific county. You can declare the county to forecast by using its FIPS ID."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "68fa8426",
   "metadata": {},
   "outputs": [],
   "source": [
    "# counties = df.countyFIPS.unique()\n",
    "# counties = [county for county in counties if county == 1001]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae5f8f15",
   "metadata": {},
   "source": [
    "## Time series modeling and forecasting<a class=\"anchor\" id=\"10\"></a>  \n",
    "Here, we will create the different functions for preparing tabular data, modeling, and forecasting that will later be called for each county."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "6aee5da9",
   "metadata": {},
   "outputs": [],
   "source": [
    "# This function selects the specified county data and splits the train and test data\n",
    "def CountyData(county, test_size):\n",
    "    data_file = df[df[\"countyFIPS\"] == county]\n",
    "    data_file.reset_index(inplace=True, drop=True)\n",
    "    train, test = train_test_split(data_file, test_size=test_size, shuffle=False)\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "282cb981",
   "metadata": {},
   "source": [
    "The next function prepares the tabular data and initializes the model from the available set of backbones (InceptionTime, ResCNN, Resnet, and FCN). The sequence length here is provided as 15, which was found by performing a grid search. To train the model, the `model.fit` method is used and is provided with the number of training epochs and the learning rate."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "117880bf",
   "metadata": {},
   "outputs": [],
   "source": [
    "def Model(train, seq_len, test_size):\n",
    "    data = prepare_tabulardata(\n",
    "        train, variable_predict=\"cases\", index_field=\"date\", seed=42\n",
    "    )  # Preparing the tabular data\n",
    "    tsmodel = TimeSeriesModel(\n",
    "        data, seq_len=seq_len, model_arch=\"InceptionTime\"\n",
    "    )  # Model initialization\n",
    "    lr_rate = tsmodel.lr_find()  # Finding the Learning rate\n",
    "    tsmodel.fit(100, lr=lr_rate, checkpoint=False)  # Model training\n",
    "    sdf_forecasted = tsmodel.predict(\n",
    "        train, prediction_type=\"dataframe\", number_of_predictions=test_size\n",
    "    )  # Forecasting using the trained TimeSeriesModel\n",
    "    return sdf_forecasted"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "c088c9ce",
   "metadata": {},
   "outputs": [],
   "source": [
    "# This function evalutes the model metrics and returns the dictionary\n",
    "def evaluate(test, sdf_forecasted):\n",
    "    r2_test = r2_score(test[\"cases\"], sdf_forecasted[\"cases_results\"][-14:])\n",
    "    mse = metrics.mean_squared_error(\n",
    "        test[\"cases\"], sdf_forecasted[\"cases_results\"][-14:]\n",
    "    )\n",
    "    mae = metrics.mean_absolute_error(\n",
    "        test[\"cases\"], sdf_forecasted[\"cases_results\"][-14:]\n",
    "    )\n",
    "    return {\n",
    "        \"DATE\": test[\"date\"],\n",
    "        \"cases_actual\": test[\"cases\"],\n",
    "        \"cases_predicted\": sdf_forecasted[\"cases_results\"][-14:],\n",
    "        \"R-square\": round(r2_test, 2),\n",
    "        \"V_RMSE\": round(np.sqrt(mse), 4),\n",
    "        \"MAE\": round(mae, 4),\n",
    "    }"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "48830b1f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# This class calls all the defined functions\n",
    "class CovidModel(object):\n",
    "    seq_len = 15\n",
    "    test_size = 14\n",
    "\n",
    "    def __init__(self, county):\n",
    "        self.county = county\n",
    "\n",
    "    def CountyData(self):\n",
    "        self.train, self.test = CountyData(self.county, self.test_size)\n",
    "\n",
    "    def Model(self):\n",
    "        self.sdf_forecasted = Model(self.train, self.seq_len, self.test_size)\n",
    "\n",
    "    def evaluate(self):\n",
    "        return evaluate(self.test, self.sdf_forecasted)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "462e3507",
   "metadata": {},
   "source": [
    "Training the model for all counties and saving the metrics in the dictionary."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "8b51c391",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.022296</td>\n",
       "      <td>0.072083</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.021528</td>\n",
       "      <td>0.056567</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.019676</td>\n",
       "      <td>0.056948</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.017958</td>\n",
       "      <td>0.063523</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0.016059</td>\n",
       "      <td>0.051571</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>0.014255</td>\n",
       "      <td>0.022249</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>0.012279</td>\n",
       "      <td>0.007439</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>0.010936</td>\n",
       "      <td>0.004679</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>0.010135</td>\n",
       "      <td>0.003242</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>0.008722</td>\n",
       "      <td>0.002114</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>10</td>\n",
       "      <td>0.007479</td>\n",
       "      <td>0.001448</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>11</td>\n",
       "      <td>0.006344</td>\n",
       "      <td>0.000820</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>12</td>\n",
       "      <td>0.005539</td>\n",
       "      <td>0.000626</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>13</td>\n",
       "      <td>0.004810</td>\n",
       "      <td>0.000156</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>14</td>\n",
       "      <td>0.004176</td>\n",
       "      <td>0.000091</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>15</td>\n",
       "      <td>0.003613</td>\n",
       "      <td>0.000100</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>16</td>\n",
       "      <td>0.003132</td>\n",
       "      <td>0.000077</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>17</td>\n",
       "      <td>0.002894</td>\n",
       "      <td>0.000230</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>18</td>\n",
       "      <td>0.002629</td>\n",
       "      <td>0.000161</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>19</td>\n",
       "      <td>0.002283</td>\n",
       "      <td>0.000087</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>20</td>\n",
       "      <td>0.002073</td>\n",
       "      <td>0.000320</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>21</td>\n",
       "      <td>0.001855</td>\n",
       "      <td>0.000131</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>22</td>\n",
       "      <td>0.001651</td>\n",
       "      <td>0.000139</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>23</td>\n",
       "      <td>0.001483</td>\n",
       "      <td>0.000202</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>24</td>\n",
       "      <td>0.001333</td>\n",
       "      <td>0.000078</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>25</td>\n",
       "      <td>0.001308</td>\n",
       "      <td>0.000239</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>26</td>\n",
       "      <td>0.001160</td>\n",
       "      <td>0.000315</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>27</td>\n",
       "      <td>0.001031</td>\n",
       "      <td>0.000212</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>28</td>\n",
       "      <td>0.000994</td>\n",
       "      <td>0.000078</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>29</td>\n",
       "      <td>0.001058</td>\n",
       "      <td>0.000162</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>30</td>\n",
       "      <td>0.000948</td>\n",
       "      <td>0.000865</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>31</td>\n",
       "      <td>0.000862</td>\n",
       "      <td>0.000587</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>32</td>\n",
       "      <td>0.000797</td>\n",
       "      <td>0.000192</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>33</td>\n",
       "      <td>0.000722</td>\n",
       "      <td>0.000051</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>34</td>\n",
       "      <td>0.000668</td>\n",
       "      <td>0.000104</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>35</td>\n",
       "      <td>0.000648</td>\n",
       "      <td>0.000066</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>36</td>\n",
       "      <td>0.000594</td>\n",
       "      <td>0.000543</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>37</td>\n",
       "      <td>0.000642</td>\n",
       "      <td>0.000080</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>38</td>\n",
       "      <td>0.000594</td>\n",
       "      <td>0.000081</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>39</td>\n",
       "      <td>0.000528</td>\n",
       "      <td>0.000192</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>40</td>\n",
       "      <td>0.000490</td>\n",
       "      <td>0.000520</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>41</td>\n",
       "      <td>0.000479</td>\n",
       "      <td>0.000175</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>42</td>\n",
       "      <td>0.000474</td>\n",
       "      <td>0.000509</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>43</td>\n",
       "      <td>0.000467</td>\n",
       "      <td>0.000559</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>44</td>\n",
       "      <td>0.000547</td>\n",
       "      <td>0.000214</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>45</td>\n",
       "      <td>0.000499</td>\n",
       "      <td>0.000077</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>46</td>\n",
       "      <td>0.000451</td>\n",
       "      <td>0.000152</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>47</td>\n",
       "      <td>0.000444</td>\n",
       "      <td>0.001184</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>48</td>\n",
       "      <td>0.000469</td>\n",
       "      <td>0.000031</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>49</td>\n",
       "      <td>0.000413</td>\n",
       "      <td>0.000155</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>50</td>\n",
       "      <td>0.000397</td>\n",
       "      <td>0.000246</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>51</td>\n",
       "      <td>0.000362</td>\n",
       "      <td>0.000137</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>52</td>\n",
       "      <td>0.000329</td>\n",
       "      <td>0.000027</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>53</td>\n",
       "      <td>0.000295</td>\n",
       "      <td>0.000019</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>54</td>\n",
       "      <td>0.000265</td>\n",
       "      <td>0.000049</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>55</td>\n",
       "      <td>0.000239</td>\n",
       "      <td>0.000032</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>56</td>\n",
       "      <td>0.000224</td>\n",
       "      <td>0.000048</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>57</td>\n",
       "      <td>0.000247</td>\n",
       "      <td>0.000253</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>58</td>\n",
       "      <td>0.000257</td>\n",
       "      <td>0.000026</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>59</td>\n",
       "      <td>0.000266</td>\n",
       "      <td>0.000036</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>60</td>\n",
       "      <td>0.000248</td>\n",
       "      <td>0.000051</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>61</td>\n",
       "      <td>0.000224</td>\n",
       "      <td>0.000021</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>62</td>\n",
       "      <td>0.000213</td>\n",
       "      <td>0.000013</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>63</td>\n",
       "      <td>0.000207</td>\n",
       "      <td>0.000080</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>64</td>\n",
       "      <td>0.000229</td>\n",
       "      <td>0.000025</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>65</td>\n",
       "      <td>0.000210</td>\n",
       "      <td>0.000038</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>66</td>\n",
       "      <td>0.000195</td>\n",
       "      <td>0.000048</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>67</td>\n",
       "      <td>0.000183</td>\n",
       "      <td>0.000049</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>68</td>\n",
       "      <td>0.000206</td>\n",
       "      <td>0.000037</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>69</td>\n",
       "      <td>0.000188</td>\n",
       "      <td>0.000019</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>70</td>\n",
       "      <td>0.000172</td>\n",
       "      <td>0.000014</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>71</td>\n",
       "      <td>0.000169</td>\n",
       "      <td>0.000020</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>72</td>\n",
       "      <td>0.000158</td>\n",
       "      <td>0.000017</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>73</td>\n",
       "      <td>0.000149</td>\n",
       "      <td>0.000028</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>74</td>\n",
       "      <td>0.000158</td>\n",
       "      <td>0.000022</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>75</td>\n",
       "      <td>0.000174</td>\n",
       "      <td>0.000066</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>76</td>\n",
       "      <td>0.000180</td>\n",
       "      <td>0.000097</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>77</td>\n",
       "      <td>0.000176</td>\n",
       "      <td>0.000171</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>78</td>\n",
       "      <td>0.000170</td>\n",
       "      <td>0.000046</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>79</td>\n",
       "      <td>0.000161</td>\n",
       "      <td>0.000037</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>80</td>\n",
       "      <td>0.000170</td>\n",
       "      <td>0.000012</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>81</td>\n",
       "      <td>0.000164</td>\n",
       "      <td>0.000024</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>82</td>\n",
       "      <td>0.000158</td>\n",
       "      <td>0.000030</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>83</td>\n",
       "      <td>0.000155</td>\n",
       "      <td>0.000033</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>84</td>\n",
       "      <td>0.000147</td>\n",
       "      <td>0.000022</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>85</td>\n",
       "      <td>0.000137</td>\n",
       "      <td>0.000019</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>86</td>\n",
       "      <td>0.000136</td>\n",
       "      <td>0.000018</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>87</td>\n",
       "      <td>0.000126</td>\n",
       "      <td>0.000011</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>88</td>\n",
       "      <td>0.000122</td>\n",
       "      <td>0.000013</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>89</td>\n",
       "      <td>0.000117</td>\n",
       "      <td>0.000016</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>90</td>\n",
       "      <td>0.000109</td>\n",
       "      <td>0.000013</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>91</td>\n",
       "      <td>0.000107</td>\n",
       "      <td>0.000010</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>92</td>\n",
       "      <td>0.000106</td>\n",
       "      <td>0.000008</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>93</td>\n",
       "      <td>0.000099</td>\n",
       "      <td>0.000010</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>94</td>\n",
       "      <td>0.000103</td>\n",
       "      <td>0.000011</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>95</td>\n",
       "      <td>0.000099</td>\n",
       "      <td>0.000019</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>96</td>\n",
       "      <td>0.000099</td>\n",
       "      <td>0.000036</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>97</td>\n",
       "      <td>0.000103</td>\n",
       "      <td>0.000018</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>98</td>\n",
       "      <td>0.000097</td>\n",
       "      <td>0.000012</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>99</td>\n",
       "      <td>0.000109</td>\n",
       "      <td>0.000014</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dct = {}\n",
    "\n",
    "for i, county in enumerate(counties):\n",
    "    covidmodel = CovidModel(county)\n",
    "    covidmodel.CountyData()\n",
    "    covidmodel.Model()\n",
    "    dct[county] = covidmodel.evaluate()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "726a0eeb",
   "metadata": {},
   "source": [
    "## Result Visualization<a class=\"anchor\" id=\"11\"></a>  \n",
    "Finally, the actual and forecasted values are plotted to visualize their distribution over the validation period, with the orange line representing the forecasted values and the blue line representing the actual values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "73e3e304",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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7777GD58OHfffTcA1dXVNDY28pnPfIbf/e53lJWV8Ytf/IIvf/nL/Pu//zu3334769ato0+fPuzZs+eEalq7di1r165l4sSJAKxcuZL777+f7OxsFi1axA9+8AMmTZrEM888wyc/+UkefPBBPvvZz/KJT3yC97///Xzve9876uvecccdrFu3jueff56cnBx2797NwIED+da3vsVDDz1EaWkplZWVfO1rX+P++++nX79+/MM//APf+ta3+OIXv8hHPvIRHnzwQSZOnMi73vWuU3vDJUmSJEndQ82OtlBpwxNJqDRoElz0FzD1Ghgy3VCpi+u9AdNxOo06W4yRv/zLv+TRRx8lKyuLLVu2sGPHDmbMmMHnP/95br31Vq666iouuugili1bxrJly7j00ksBaG5uZtiwYQDMnDmT9773vVx77bVce+21x/2ev/jFL3j88cfp06cP//qv/8rAgQMBeMc73kF2dja1tbU8+eSTvOMd7zj4nPr6egCeeOIJfvOb3wDwvve9j1tvvfWI17///vv5+Mc/fnCbXevrt/f000+zYsUK5s+fD0BDQwPnn38+r776KuPGjWPSpEkA3HDDDdxxxx0n/H5KkiRJkrqBvdvahUpPAhFKJ8PFX0hCpcFTDZW6kd4bMGXAtGnTjjqj6Cc/+QkVFRUsWbKE3Nxcxo4dS11dHeXl5SxZsoR77rmH2267jcsuu4zrrruOadOm8dRTTx3xOnfffTePPvoov//97/m7v/s7li9ffsw5Sq0zmA7Xr18/AFpaWiguLuaFF1446vPD6/xDHmM8oXMuvfRSfvaznx2y/sILL7zucyVJkiRJ3dDerUmgtOJ3sPFpIELZWbDgVph2LQw+K9MV6hR5F7lO9MY3vpH6+vpD7tr23HPPsWHDBgYPHkxubi4PPfQQGzZsAJK7svXt25cbbriBz3/+8yxdupTJkydTUVFxMGBqbGxk+fLltLS0sGnTJhYuXMg3vvEN9uzZQ21t7SnXWlhYyLhx4/jVr34FJGHQiy++CMD8+fMPznf6yU9+ctTnX3bZZfzgBz+gqakJgN27dwMwYMAAampqAJg3bx5PPPEEq1evBmD//v2sXLny4JynNWvWABwRQEmSJEmSupHqzfDU/4H/exl86yy470tQtxcuuQ0+9Sx86mlYeJvhUjdnB1MnCiFw1113ccstt3D77beT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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAFNCAYAAABMn9WLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABzfUlEQVR4nO3dd3ycV532/89XvVi9WcW996Y4jp3i9EoShxYglFACISEJLBAC7MIusE+WHw8L7LKw4dklyy4QINgkSyoBh/TibtmJW9zUJVvV6prz++Pc8kiO7chFGpXr/XrNS6P73DM6mowd6fI5123OOURERERERERERE5XVKQnICIiIiIiIiIiw5sCJhEREREREREROSMKmERERERERERE5IwoYBIRERERERERkTOigElERERERERERM6IAiYRERERERERETkjCphERERE+snMnjCzj55gbKKZOTOLGex5jUbBaz010vMQERERTwGTiIiInBYzu9PM1plZu5k9eMxYnJk9bGb7giBg5THjF5vZWjNrMLN9x3nutWZWY2aNZrbZzG44xblNN7PfmVlt8DW2mNkXzCz61L/TMOfc1c65/zqdxwavRauZNfe6FZzJfAaDmT1rZp88yXhPsNbzPe0zs68M8hwfNLNvD+bXFBERkb4UMImIiMjpKge+DfznCcZfAG4BKo8zdiR43JdO8Ni7gXznXCpwG/A/Zpbfn0mZ2RTgVeAgMM85lwa8FygGUvrzHAPoXc65Mb1u5afy4CG+OirdOTcGeA/wt2Z2eaQnJCIiIoNHAZOIiIicFufcaufcH4BDxxnrcM79wDn3AtB9nPHXnHP/Dbx1gufe4pzr6vkUiAXG9XNqfw+85Jz7gnOuIni+Hc65Dzrn6gHM7Hoz22Zm9cEKnVnB8a+Y2cO9n8zMfmhmPwruH13NY2bRZva9YJXUW8C1/ZxfH2YWb2Y/MLPy4PYDM4sPxlaaWamZ3WtmlcDPzSwqmOceMztkZr81s8xez3e+mb0UfG8HzexjwfFrzWxjsCrsoJl9s9djEszsf4Lnqzez180sz8y+A1wA/GuwOulf3+n7cc6tA7YBC3s9/8fN7A0zqzOzp8xsQnDczOyfzay610qzuce+1sHnHzOzF47z+t0GfAj4cjDH/z2V119ERETODgVMIiIiMiSZ2R/NrA2/GulZYF1wfHwQgow/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vXv3snHjRmJiYjh8+DCZmZl8//vfZ+3atWRnZ1NbW8u3v/1tnnnmGZKTk/mnf/onvv/97/PlL3+ZT33qU/zlL39h6tSpvP/97z+9F1xERERERESGLJV0jyyjN2A6yUqjweac46tf/SrPPfccUVFRlJWVUVVVxbx58/jiF7/Ivffey3XXXccFF1xASUkJJSUlXH755QB0d3eTn58PwPz58/nQhz7EjTfeyI033njSr/mb3/yGF154gfj4eP793/+dzMxMAN773vcSHR1Nc3MzL730Eu9973uPPqa9vR2AF198kd///vcAfPjDH+bee+992/M/88wzfOYznzm6za7n+Xt75ZVX2L59OytWrACgo6OD8847jzfffJNJkyYxbdo0AG655RYeeOCBfr+eIiIiIiIiMvSopHtkG70BUwTMmTPnuB1Fv/zlL6mpqWH9+vXExsYyceJE2tramD59OuvXr+fxxx/nvvvu44orrmDVqlXMmTOHl19++W3P89hjj/Hcc8/x6KOP8q1vfYtt27adsEepp4PpWMnJyQCEQiHS09PZtGnTcR//Tn/gnXP9Oufyyy/n17/+dZ/jmzZt0l8oIiIiIiIiI0B7Vzcv7znE09ur+NP2Kmqa2omJMs6bksWtyydy2ew88tMSIz1NOQsG9Cpy0tcll1xCe3t7n6u2vf766+zfv5/c3FxiY2NZu3Yt+/fvB/xV2ZKSkrjlllv44he/yIYNG5gxYwY1NTVHA6bOzk62bdtGKBTi4MGDXHzxxXz3u9+lvr6e5ubm055ramoqkyZN4ne/+x3gw6DNmzcDsGLFiqP9Tr/85S+P+/grrriCn/70p3R1dQFw+PBhAFJSUmhqagJg2bJlvPjii+zevRuAlpYWdu7cebTnac+ePQBvC6BERERERERk6Gps6+TRzeXc+asNLPnWM3zs56/zh41lLJ2YyQ9vXsj6v72c//7EuXz4vIkKl0YQrWAaRGbGmjVruOeee7j//vtJSEhg4sSJfPOb3+Suu+6iuLiYhQsXMnPmTAC2bt3Kl770JaKiooiNjeUnP/kJcXFxPPzww9x11100NDTQ1dXFPffcw/Tp07nllltoaGjAOcfnP/950tPTz2i+v/zlL7n99tv59re/TWdnJzfffDMLFizghz/8IR/84Af54Q9/yLvf/e7jPvaTn/wkO3fuZP78+cTGxvKp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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Specifying few counties for visualizing the results\n",
    "viz_counties = [1007,1113]\n",
    "\n",
    "for i, county in enumerate(viz_counties):\n",
    "    result_df = pd.DataFrame(dct[county])\n",
    "    plt.figure(figsize=(20, 5))\n",
    "    plt.plot(result_df[\"DATE\"], result_df[[\"cases_actual\", \"cases_predicted\"]])\n",
    "    plt.xlabel(\"Date\")\n",
    "    plt.ylabel(\"Covid Cases\")\n",
    "    plt.legend([\"Cases_Actual\", \"Cases_Predicted\"], loc=\"upper left\")\n",
    "    plt.title(str(county) + \": Covid Forecast Result\")\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "bcd418ec",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Here the Alabama counties feature layer is accessed and converted to spatial dataframe\n",
    "item = gis.content.get(\"41e8eb46285d4e1f85ee6e826b05e077\")\n",
    "flayer = item.layers[0]\n",
    "f_sdf = flayer.query().sdf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "74b291b7",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Adding the RMSE and MAE from the output dictionary to the spatial dataframe\n",
    "RMSE = []\n",
    "MAE = []\n",
    "for i, county in enumerate(counties):\n",
    "    MAE.append(dct[county][\"MAE\"])\n",
    "    RMSE.append(dct[county][\"V_RMSE\"])\n",
    "\n",
    "f_sdf = f_sdf.assign(RMSE=RMSE, MAE=MAE)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe89f71d",
   "metadata": {},
   "source": [
    "Next, we will publish this spatial dataframe as a feature layer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "be88e793",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div class=\"item_container\" style=\"height: auto; overflow: hidden; border: 1px solid #cfcfcf; border-radius: 2px; background: #f6fafa; line-height: 1.21429em; padding: 10px;\">\n",
       "                    <div class=\"item_left\" style=\"width: 210px; float: left;\">\n",
       "                       <a href='https://www.arcgis.com//home/item.html?id=9d197a4870a1479c81ddfd6b739816da' target='_blank'>\n",
       "                        <img src='' width='200' height='133' class=\"itemThumbnail\">\n",
       "                       </a>\n",
       "                    </div>\n",
       "\n",
       "                    <div class=\"item_right\"     style=\"float: none; width: auto; overflow: hidden;\">\n",
       "                        <a href='https://www.arcgis.com//home/item.html?id=9d197a4870a1479c81ddfd6b739816da' target='_blank'><b>Alabama Covid Time Series Model Metrics</b>\n",
       "                        </a>\n",
       "                        <br/>This is the feature layer containing the RMSE and MAE errors resulted from time series analysis of COVID cases using TimeSeriesModel from arcgis.learn<img src='https://www.arcgis.com//home/js/jsapi/esri/css/images/item_type_icons/featureshosted16.png' style=\"vertical-align:middle;\">Feature Layer Collection by api_data_owner\n",
       "                        <br/>Last Modified: May 12, 2022\n",
       "                        <br/>0 comments, 3 views\n",
       "                    </div>\n",
       "                </div>\n",
       "                "
      ],
      "text/plain": [
       "<Item title:\"Alabama Covid Time Series Model Metrics\" type:Feature Layer Collection owner:api_data_owner>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "published_sdf = gis.content.import_data(f_sdf, title='Alabama Covid Time Series Model Metrics')\n",
    "published_sdf"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b174de64",
   "metadata": {},
   "source": [
    "Next, we will open the published web layer and input the item id of the published output layer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a99716ed-0500-4e09-939e-5ba8723afb0d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<img src=\"\"/>"
      ],
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "item = gis.content.get(\"9d197a4870a1479c81ddfd6b739816da\")\n",
    "map1 = gis.map(\"Alabama\")\n",
    "map1.content.add(item)\n",
    "map1.legend.enabled = True\n",
    "map1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "93d26468",
   "metadata": {},
   "source": [
    "From the map, it can be seen that most of the counties have RMSE ranging from 18-400 cases, represented by the blue polygons. The fewer green and cream colored counties have higher RMSE, and the one red county has the maximum RMSE. This indicates that `InceptionTime` is performing well for this state, and that other backbones can be introduced to further reduce the RMSE in the counties that have higher RMSE."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f057a9c8",
   "metadata": {},
   "source": [
    "## Conclusion<a class=\"anchor\" id=\"12\"></a>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2442ae51",
   "metadata": {},
   "source": [
    "This study conducted a univariate time series analysis using the Deep learning `TimeSeriesModel` from the `arcgis.learn` library and forecasted the COVID-19 confirmed cases for the counties in Alabama. The initial raw data was averaged over 7 days using the seven-day moving average method to avoid sudden spikes. The methodology also included preparing a time series dataset using the `prepare_tabulardata()` method, followed by modeling, predicting, and validating the test dataset. The TimeSeriesModel from `arcgis.learn` includes backbones, such as `InceptionTime`, `ResCNN`, `ResNet`, and `FCN`, that do not need fine-tuning of multiple hyperparameters before fitting the model. Our method produced reasonably accurate results, and users can change the sequence length or backbone for forecasting in other areas."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
